{
 "cells": [
  {
   "cell_type": "code",
   "execution_count": 6,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Collecting keras\n",
      "  Downloading Keras-2.4.3-py2.py3-none-any.whl (36 kB)\n",
      "Requirement already satisfied: h5py in /opt/conda/envs/Python-3.7-main/lib/python3.7/site-packages (from keras) (2.10.0)\n",
      "Requirement already satisfied: pyyaml in /opt/conda/envs/Python-3.7-main/lib/python3.7/site-packages (from keras) (5.3.1)\n",
      "Requirement already satisfied: scipy>=0.14 in /opt/conda/envs/Python-3.7-main/lib/python3.7/site-packages (from keras) (1.5.0)\n",
      "Requirement already satisfied: numpy>=1.9.1 in /opt/conda/envs/Python-3.7-main/lib/python3.7/site-packages (from keras) (1.19.4)\n",
      "Requirement already satisfied: six in /opt/conda/envs/Python-3.7-main/lib/python3.7/site-packages (from h5py->keras) (1.15.0)\n",
      "Installing collected packages: keras\n",
      "Successfully installed keras-2.4.3\n"
     ]
    }
   ],
   "source": []
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "metadata": {},
   "outputs": [],
   "source": [
    "import keras\n",
    "import numpy as np\n",
    "from keras.models import Sequential\n",
    "from keras.layers import Dense,LSTM,Dropout\n",
    "from sklearn.preprocessing import MinMaxScaler\n",
    "import matplotlib.pyplot as plt\n",
    "%matplotlib inline"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 8,
   "metadata": {},
   "outputs": [],
   "source": [
    "def create_dataset(signal_data,look_back=1):\n",
    "    dataX,dataY=[],[]\n",
    "    for i in range(len(signal_data)-look_back):\n",
    "        dataX.append(signal_data[i:(i+look_back),0])\n",
    "        dataY.append(signal_data[i+look_back,0])\n",
    "    return np.array(dataX),np.array(dataY)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 9,
   "metadata": {},
   "outputs": [],
   "source": [
    "class CustomHistory(keras.callbacks.Callback):\n",
    "    def init(self):\n",
    "        self.train_loss=[]\n",
    "        self.val_loss=[]\n",
    "    def on_epoch_end(self,batch,logs={}):\n",
    "        self.train_loss.append(logs.get('loss'))\n",
    "        self.val_loss.append(logs.get('val_loss'))\n",
    "        \n",
    "look_back=40"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 10,
   "metadata": {},
   "outputs": [],
   "source": [
    "signal_data=np.cos(np.arange(1600)*(20*np.pi/1000))[:,None]\n",
    "scaler=MinMaxScaler(feature_range=(0,1))\n",
    "signal_data=scaler.fit_transform(signal_data)\n",
    "\n",
    "train=signal_data[0:800]\n",
    "val=signal_data[800:1200]\n",
    "test=signal_data[1200:]\n",
    "\n",
    "x_train,y_train=create_dataset(train,look_back)\n",
    "x_val,y_val=create_dataset(val,look_back)\n",
    "x_test,y_test=create_dataset(test,look_back)\n",
    "\n",
    "x_train=np.reshape(x_train,(x_train.shape[0],x_train.shape[1],1))\n",
    "x_val=np.reshape(x_val,(x_val.shape[0],x_val.shape[1],1))\n",
    "x_test=np.reshape(x_test,(x_test.shape[0],x_test.shape[1],1))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 11,
   "metadata": {},
   "outputs": [],
   "source": [
    "model=Sequential()\n",
    "for i in range(2):\n",
    "    model.add(LSTM(32,batch_input_shape=(1,look_back,1),stateful=True,return_sequences=True))\n",
    "    model.add(Dropout(0.3))\n",
    "model.add(LSTM(32,batch_input_shape=(1,look_back,1),stateful=True))\n",
    "model.add(Dropout(0.3))\n",
    "model.add(Dense(1))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 12,
   "metadata": {},
   "outputs": [],
   "source": [
    "model.compile(loss='mean_squared_error',optimizer='adam')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 13,
   "metadata": {},
   "outputs": [],
   "source": [
    "custom_hist=CustomHistory()\n",
    "custom_hist.init()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 14,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "760/760 [==============================] - 32s 37ms/step - loss: 0.0261 - val_loss: 0.0344\n",
      "760/760 [==============================] - 24s 32ms/step - loss: 0.1023 - val_loss: 0.1282\n",
      "760/760 [==============================] - 24s 31ms/step - loss: 0.1317 - val_loss: 0.1327\n",
      "760/760 [==============================] - 24s 31ms/step - loss: 0.1462 - val_loss: 0.1265\n",
      "760/760 [==============================] - 24s 32ms/step - loss: 0.1077 - val_loss: 0.1426\n",
      "760/760 [==============================] - 23s 31ms/step - loss: 0.1413 - val_loss: 0.1277\n",
      "760/760 [==============================] - 24s 31ms/step - loss: 0.0875 - val_loss: 0.0231\n",
      "760/760 [==============================] - 24s 31ms/step - loss: 0.0145 - val_loss: 0.0033\n",
      "760/760 [==============================] - 24s 32ms/step - loss: 0.0084 - val_loss: 0.0134\n",
      "760/760 [==============================] - 24s 31ms/step - loss: 0.0099 - val_loss: 0.0118\n",
      "760/760 [==============================] - 24s 31ms/step - loss: 0.0067 - val_loss: 0.0266\n",
      "760/760 [==============================] - 23s 31ms/step - loss: 0.0081 - val_loss: 0.0136\n",
      "760/760 [==============================] - 24s 31ms/step - loss: 0.0096 - val_loss: 0.0198\n",
      "760/760 [==============================] - 23s 31ms/step - loss: 0.0072 - val_loss: 0.0156\n",
      "760/760 [==============================] - 24s 31ms/step - loss: 0.0100 - val_loss: 0.0098\n",
      "760/760 [==============================] - 24s 31ms/step - loss: 0.0078 - val_loss: 0.0100\n",
      "760/760 [==============================] - 23s 31ms/step - loss: 0.0085 - val_loss: 0.0717\n",
      "760/760 [==============================] - 24s 32ms/step - loss: 0.0129 - val_loss: 0.0136\n",
      "760/760 [==============================] - 24s 32ms/step - loss: 0.0090 - val_loss: 0.0432\n",
      "760/760 [==============================] - 24s 31ms/step - loss: 0.0097 - val_loss: 0.0235\n",
      "760/760 [==============================] - 24s 31ms/step - loss: 0.0073 - val_loss: 0.0065\n",
      "760/760 [==============================] - 24s 31ms/step - loss: 0.0074 - val_loss: 0.0383\n",
      "760/760 [==============================] - 24s 31ms/step - loss: 0.0385 - val_loss: 0.1228\n",
      "760/760 [==============================] - 24s 32ms/step - loss: 0.0210 - val_loss: 0.0022\n",
      "760/760 [==============================] - 24s 32ms/step - loss: 0.0078 - val_loss: 0.0065\n",
      "760/760 [==============================] - 24s 32ms/step - loss: 0.0074 - val_loss: 0.0260\n",
      "760/760 [==============================] - 24s 32ms/step - loss: 0.0071 - val_loss: 0.0171\n",
      "760/760 [==============================] - 23s 31ms/step - loss: 0.0048 - val_loss: 0.0065\n",
      "760/760 [==============================] - 25s 32ms/step - loss: 0.0068 - val_loss: 0.0103\n",
      "760/760 [==============================] - 24s 32ms/step - loss: 0.0052 - val_loss: 0.0043\n",
      "760/760 [==============================] - 23s 31ms/step - loss: 0.0072 - val_loss: 0.0085\n",
      "760/760 [==============================] - 24s 32ms/step - loss: 0.0076 - val_loss: 0.0110\n",
      "760/760 [==============================] - 24s 32ms/step - loss: 0.0072 - val_loss: 0.0107\n",
      "760/760 [==============================] - 24s 31ms/step - loss: 0.0051 - val_loss: 0.0011\n",
      "760/760 [==============================] - 24s 32ms/step - loss: 0.0043 - val_loss: 0.0030\n",
      "760/760 [==============================] - 23s 31ms/step - loss: 0.0094 - val_loss: 0.0030\n",
      "760/760 [==============================] - 24s 31ms/step - loss: 0.0056 - val_loss: 0.0050\n",
      "760/760 [==============================] - 24s 32ms/step - loss: 0.0042 - val_loss: 0.0013\n",
      "760/760 [==============================] - 23s 31ms/step - loss: 0.0044 - val_loss: 0.0022\n",
      "760/760 [==============================] - 24s 31ms/step - loss: 0.0050 - val_loss: 0.0279\n",
      "760/760 [==============================] - 24s 31ms/step - loss: 0.0072 - val_loss: 0.0064\n",
      "760/760 [==============================] - 23s 31ms/step - loss: 0.0047 - val_loss: 0.0019\n",
      "760/760 [==============================] - 24s 31ms/step - loss: 0.0040 - val_loss: 0.0026\n",
      "760/760 [==============================] - 24s 31ms/step - loss: 0.0051 - val_loss: 0.0239\n",
      "760/760 [==============================] - 23s 31ms/step - loss: 0.0056 - val_loss: 0.0052\n",
      "760/760 [==============================] - 24s 32ms/step - loss: 0.0064 - val_loss: 0.0182\n",
      "760/760 [==============================] - 23s 31ms/step - loss: 0.0067 - val_loss: 0.0029\n",
      "760/760 [==============================] - 24s 32ms/step - loss: 0.0037 - val_loss: 9.6426e-04\n",
      "760/760 [==============================] - 24s 31ms/step - loss: 0.0034 - val_loss: 0.0054\n",
      "760/760 [==============================] - 23s 31ms/step - loss: 0.0041 - val_loss: 0.0104\n",
      "760/760 [==============================] - 24s 32ms/step - loss: 0.0074 - val_loss: 0.0055\n",
      "760/760 [==============================] - 23s 31ms/step - loss: 0.0046 - val_loss: 7.1557e-04\n",
      "760/760 [==============================] - 23s 30ms/step - loss: 0.0042 - val_loss: 0.0096\n",
      "760/760 [==============================] - 23s 31ms/step - loss: 0.0046 - val_loss: 0.0069\n",
      "760/760 [==============================] - 24s 31ms/step - loss: 0.0043 - val_loss: 0.0017\n",
      "760/760 [==============================] - 23s 31ms/step - loss: 0.0035 - val_loss: 0.0024\n",
      "760/760 [==============================] - 23s 31ms/step - loss: 0.0050 - val_loss: 0.0019\n",
      "760/760 [==============================] - 24s 31ms/step - loss: 0.0038 - val_loss: 0.0016\n",
      "760/760 [==============================] - 23s 31ms/step - loss: 0.0042 - val_loss: 0.0044\n",
      "760/760 [==============================] - 24s 31ms/step - loss: 0.0034 - val_loss: 0.0023\n",
      "760/760 [==============================] - 24s 31ms/step - loss: 0.0039 - val_loss: 0.0018\n",
      "760/760 [==============================] - 24s 31ms/step - loss: 0.0038 - val_loss: 0.0041\n",
      "760/760 [==============================] - 23s 31ms/step - loss: 0.0047 - val_loss: 0.0046\n",
      "760/760 [==============================] - 24s 31ms/step - loss: 0.0034 - val_loss: 0.0022\n",
      "760/760 [==============================] - 23s 31ms/step - loss: 0.0036 - val_loss: 0.0033\n",
      "760/760 [==============================] - 24s 31ms/step - loss: 0.0045 - val_loss: 0.0011\n",
      "760/760 [==============================] - 24s 31ms/step - loss: 0.0033 - val_loss: 0.0028\n",
      "760/760 [==============================] - 24s 31ms/step - loss: 0.0027 - val_loss: 0.0037\n",
      "760/760 [==============================] - 24s 32ms/step - loss: 0.0033 - val_loss: 0.0011\n",
      "760/760 [==============================] - 24s 31ms/step - loss: 0.0036 - val_loss: 0.0017\n",
      "760/760 [==============================] - 25s 33ms/step - loss: 0.0037 - val_loss: 0.0056\n",
      "760/760 [==============================] - 24s 32ms/step - loss: 0.0036 - val_loss: 0.0017\n",
      "760/760 [==============================] - 24s 31ms/step - loss: 0.0055 - val_loss: 0.0134\n",
      "760/760 [==============================] - 24s 32ms/step - loss: 0.0034 - val_loss: 8.3679e-04\n",
      "760/760 [==============================] - 24s 31ms/step - loss: 0.0030 - val_loss: 8.7762e-04\n",
      "760/760 [==============================] - 24s 31ms/step - loss: 0.0036 - val_loss: 0.0058\n",
      "760/760 [==============================] - 24s 32ms/step - loss: 0.0031 - val_loss: 4.6167e-04\n",
      "760/760 [==============================] - 24s 31ms/step - loss: 0.0032 - val_loss: 0.0011\n",
      "760/760 [==============================] - 24s 32ms/step - loss: 0.0028 - val_loss: 0.0015\n",
      "760/760 [==============================] - 24s 32ms/step - loss: 0.0039 - val_loss: 0.0028\n",
      "760/760 [==============================] - 23s 31ms/step - loss: 0.0031 - val_loss: 6.9893e-04\n",
      "760/760 [==============================] - 24s 32ms/step - loss: 0.0035 - val_loss: 0.0031\n",
      "760/760 [==============================] - 24s 32ms/step - loss: 0.0035 - val_loss: 0.0015\n",
      "760/760 [==============================] - 24s 31ms/step - loss: 0.0029 - val_loss: 7.5212e-04\n",
      "760/760 [==============================] - 24s 31ms/step - loss: 0.0032 - val_loss: 0.0030\n",
      "760/760 [==============================] - 25s 32ms/step - loss: 0.0032 - val_loss: 0.0021\n",
      "760/760 [==============================] - 24s 31ms/step - loss: 0.0028 - val_loss: 0.0021\n",
      "760/760 [==============================] - 24s 31ms/step - loss: 0.0027 - val_loss: 0.0036\n",
      "760/760 [==============================] - 23s 31ms/step - loss: 0.0081 - val_loss: 0.0018\n",
      "760/760 [==============================] - 24s 32ms/step - loss: 0.0030 - val_loss: 0.0013\n",
      "760/760 [==============================] - 24s 31ms/step - loss: 0.0028 - val_loss: 1.4851e-04\n",
      "760/760 [==============================] - 24s 31ms/step - loss: 0.0027 - val_loss: 0.0027\n",
      "760/760 [==============================] - 24s 31ms/step - loss: 0.0032 - val_loss: 0.0021\n",
      "760/760 [==============================] - 24s 32ms/step - loss: 0.0027 - val_loss: 0.0011\n",
      "760/760 [==============================] - 24s 31ms/step - loss: 0.0030 - val_loss: 0.0025\n",
      "760/760 [==============================] - 24s 32ms/step - loss: 0.0032 - val_loss: 3.1685e-04\n",
      "760/760 [==============================] - 24s 31ms/step - loss: 0.0030 - val_loss: 0.0012\n",
      "760/760 [==============================] - 24s 31ms/step - loss: 0.0027 - val_loss: 9.9733e-04\n",
      "760/760 [==============================] - 24s 32ms/step - loss: 0.0027 - val_loss: 0.0013\n",
      "760/760 [==============================] - 24s 32ms/step - loss: 0.0039 - val_loss: 0.0148\n",
      "760/760 [==============================] - 24s 32ms/step - loss: 0.0038 - val_loss: 8.6841e-04\n",
      "760/760 [==============================] - 24s 31ms/step - loss: 0.0028 - val_loss: 8.4328e-04\n",
      "760/760 [==============================] - 23s 30ms/step - loss: 0.0027 - val_loss: 0.0011\n",
      "760/760 [==============================] - 23s 31ms/step - loss: 0.0027 - val_loss: 0.0021\n",
      "760/760 [==============================] - 24s 31ms/step - loss: 0.0028 - val_loss: 0.0013\n",
      "760/760 [==============================] - 23s 30ms/step - loss: 0.0039 - val_loss: 8.2144e-04\n",
      "760/760 [==============================] - 24s 31ms/step - loss: 0.0024 - val_loss: 0.0012\n",
      "760/760 [==============================] - 23s 31ms/step - loss: 0.0026 - val_loss: 3.2349e-04\n",
      "760/760 [==============================] - 23s 31ms/step - loss: 0.0023 - val_loss: 3.1902e-04\n",
      "760/760 [==============================] - 24s 31ms/step - loss: 0.0030 - val_loss: 0.0017\n",
      "760/760 [==============================] - 24s 31ms/step - loss: 0.0026 - val_loss: 0.0012\n",
      "760/760 [==============================] - 23s 31ms/step - loss: 0.0025 - val_loss: 0.0013\n",
      "760/760 [==============================] - 23s 31ms/step - loss: 0.0032 - val_loss: 3.6831e-04\n",
      "760/760 [==============================] - 24s 31ms/step - loss: 0.0026 - val_loss: 0.0019\n",
      "760/760 [==============================] - 24s 31ms/step - loss: 0.0028 - val_loss: 0.0023\n",
      "760/760 [==============================] - 23s 31ms/step - loss: 0.0025 - val_loss: 1.7317e-04\n",
      "760/760 [==============================] - 24s 31ms/step - loss: 0.0026 - val_loss: 9.6535e-04\n",
      "760/760 [==============================] - 23s 31ms/step - loss: 0.0026 - val_loss: 0.0046\n",
      "760/760 [==============================] - 24s 31ms/step - loss: 0.0032 - val_loss: 0.0021\n",
      "760/760 [==============================] - 24s 31ms/step - loss: 0.0028 - val_loss: 9.9869e-04\n",
      "760/760 [==============================] - 23s 31ms/step - loss: 0.0026 - val_loss: 0.0019\n",
      "760/760 [==============================] - 24s 31ms/step - loss: 0.0029 - val_loss: 9.4588e-04\n",
      "760/760 [==============================] - 24s 32ms/step - loss: 0.0025 - val_loss: 5.2305e-04\n",
      "760/760 [==============================] - 24s 31ms/step - loss: 0.0033 - val_loss: 0.0088\n",
      "760/760 [==============================] - 24s 31ms/step - loss: 0.0033 - val_loss: 5.3548e-04\n",
      "760/760 [==============================] - 24s 31ms/step - loss: 0.0027 - val_loss: 7.6866e-04\n",
      "760/760 [==============================] - 24s 31ms/step - loss: 0.0025 - val_loss: 3.4938e-04\n",
      "760/760 [==============================] - 23s 31ms/step - loss: 0.0027 - val_loss: 0.0013\n",
      "760/760 [==============================] - 24s 31ms/step - loss: 0.0028 - val_loss: 0.0015\n",
      "760/760 [==============================] - 24s 31ms/step - loss: 0.0031 - val_loss: 0.0016\n",
      "760/760 [==============================] - 24s 31ms/step - loss: 0.0030 - val_loss: 0.0014\n",
      "760/760 [==============================] - 24s 31ms/step - loss: 0.0029 - val_loss: 0.0020\n",
      "760/760 [==============================] - 24s 31ms/step - loss: 0.0030 - val_loss: 7.8474e-05\n",
      "760/760 [==============================] - 23s 31ms/step - loss: 0.0022 - val_loss: 4.3205e-04\n",
      "760/760 [==============================] - 23s 31ms/step - loss: 0.0027 - val_loss: 0.0047\n",
      "760/760 [==============================] - 24s 31ms/step - loss: 0.0025 - val_loss: 9.7857e-04\n",
      "760/760 [==============================] - 24s 31ms/step - loss: 0.0029 - val_loss: 6.7030e-04\n",
      "760/760 [==============================] - 23s 31ms/step - loss: 0.0025 - val_loss: 0.0018\n",
      "760/760 [==============================] - 23s 31ms/step - loss: 0.0033 - val_loss: 0.0026\n",
      "760/760 [==============================] - 24s 31ms/step - loss: 0.0024 - val_loss: 9.6345e-04\n",
      "760/760 [==============================] - 24s 31ms/step - loss: 0.0024 - val_loss: 9.7227e-04\n",
      "760/760 [==============================] - 23s 31ms/step - loss: 0.0026 - val_loss: 0.0014\n",
      "760/760 [==============================] - 24s 31ms/step - loss: 0.0024 - val_loss: 5.1564e-04\n",
      "760/760 [==============================] - 24s 31ms/step - loss: 0.0029 - val_loss: 0.0011\n",
      "760/760 [==============================] - 24s 31ms/step - loss: 0.0023 - val_loss: 0.0014\n",
      "760/760 [==============================] - 24s 31ms/step - loss: 0.0028 - val_loss: 7.7089e-04\n",
      "760/760 [==============================] - 24s 32ms/step - loss: 0.0024 - val_loss: 0.0011\n",
      "760/760 [==============================] - 24s 32ms/step - loss: 0.0025 - val_loss: 4.4398e-04\n",
      "760/760 [==============================] - 24s 32ms/step - loss: 0.0024 - val_loss: 8.7230e-04\n",
      "760/760 [==============================] - 24s 31ms/step - loss: 0.0029 - val_loss: 8.3099e-04\n",
      "760/760 [==============================] - 24s 31ms/step - loss: 0.0024 - val_loss: 5.4445e-04\n",
      "760/760 [==============================] - 24s 31ms/step - loss: 0.0026 - val_loss: 8.5667e-04\n",
      "760/760 [==============================] - 24s 31ms/step - loss: 0.0027 - val_loss: 5.0517e-05\n",
      "760/760 [==============================] - 24s 31ms/step - loss: 0.0027 - val_loss: 4.5196e-04\n",
      "760/760 [==============================] - 23s 31ms/step - loss: 0.0023 - val_loss: 2.5417e-04\n",
      "760/760 [==============================] - 24s 31ms/step - loss: 0.0029 - val_loss: 4.4649e-04\n",
      "760/760 [==============================] - 23s 31ms/step - loss: 0.0025 - val_loss: 6.9011e-04\n",
      "760/760 [==============================] - 24s 31ms/step - loss: 0.0024 - val_loss: 0.0015\n",
      "760/760 [==============================] - 24s 31ms/step - loss: 0.0022 - val_loss: 0.0014\n",
      "760/760 [==============================] - 24s 32ms/step - loss: 0.0026 - val_loss: 0.0020\n",
      "760/760 [==============================] - 24s 31ms/step - loss: 0.0024 - val_loss: 2.8175e-04\n",
      "760/760 [==============================] - 24s 31ms/step - loss: 0.0026 - val_loss: 9.4712e-04\n",
      "760/760 [==============================] - 23s 31ms/step - loss: 0.0025 - val_loss: 0.0014\n",
      "760/760 [==============================] - 24s 31ms/step - loss: 0.0026 - val_loss: 2.7688e-04\n",
      "760/760 [==============================] - 24s 31ms/step - loss: 0.0024 - val_loss: 0.0019\n",
      "760/760 [==============================] - 23s 30ms/step - loss: 0.0026 - val_loss: 4.1268e-04\n",
      "760/760 [==============================] - 24s 32ms/step - loss: 0.0021 - val_loss: 4.1336e-04\n",
      "760/760 [==============================] - 23s 30ms/step - loss: 0.0022 - val_loss: 6.5744e-04\n",
      "760/760 [==============================] - 23s 31ms/step - loss: 0.0024 - val_loss: 8.6518e-04\n",
      "760/760 [==============================] - 24s 31ms/step - loss: 0.0024 - val_loss: 3.4381e-04\n",
      "760/760 [==============================] - 24s 31ms/step - loss: 0.0024 - val_loss: 5.1099e-04\n",
      "760/760 [==============================] - 24s 31ms/step - loss: 0.0024 - val_loss: 0.0012\n",
      "760/760 [==============================] - 24s 32ms/step - loss: 0.0021 - val_loss: 1.5938e-04\n",
      "760/760 [==============================] - 23s 31ms/step - loss: 0.0022 - val_loss: 5.3740e-04\n",
      "760/760 [==============================] - 24s 32ms/step - loss: 0.0025 - val_loss: 9.9187e-04\n",
      "760/760 [==============================] - 24s 31ms/step - loss: 0.0026 - val_loss: 3.6013e-04\n",
      "760/760 [==============================] - 24s 31ms/step - loss: 0.0021 - val_loss: 7.6341e-05\n",
      "760/760 [==============================] - 24s 31ms/step - loss: 0.0023 - val_loss: 6.7271e-04\n",
      "760/760 [==============================] - 24s 31ms/step - loss: 0.0026 - val_loss: 5.6142e-04\n",
      "760/760 [==============================] - 24s 31ms/step - loss: 0.0028 - val_loss: 0.0023\n",
      "760/760 [==============================] - 24s 31ms/step - loss: 0.0034 - val_loss: 4.1525e-04\n",
      "760/760 [==============================] - 24s 31ms/step - loss: 0.0027 - val_loss: 7.2399e-04\n",
      "760/760 [==============================] - 24s 32ms/step - loss: 0.0028 - val_loss: 0.0011\n",
      "760/760 [==============================] - 24s 31ms/step - loss: 0.0027 - val_loss: 0.0015\n",
      "760/760 [==============================] - 24s 32ms/step - loss: 0.0025 - val_loss: 3.4352e-04\n",
      "760/760 [==============================] - 23s 31ms/step - loss: 0.0026 - val_loss: 0.0012\n",
      "760/760 [==============================] - 24s 31ms/step - loss: 0.0024 - val_loss: 2.9182e-04\n",
      "760/760 [==============================] - 24s 31ms/step - loss: 0.0023 - val_loss: 8.4791e-04\n",
      "760/760 [==============================] - 24s 31ms/step - loss: 0.0025 - val_loss: 0.0016\n",
      "760/760 [==============================] - 24s 31ms/step - loss: 0.0029 - val_loss: 8.7036e-04\n",
      "760/760 [==============================] - 24s 31ms/step - loss: 0.0021 - val_loss: 4.5497e-04\n",
      "760/760 [==============================] - 24s 31ms/step - loss: 0.0022 - val_loss: 6.7671e-04\n",
      "760/760 [==============================] - 23s 30ms/step - loss: 0.0024 - val_loss: 8.8247e-04\n",
      "760/760 [==============================] - 24s 31ms/step - loss: 0.0023 - val_loss: 3.7011e-04\n",
      "760/760 [==============================] - 23s 31ms/step - loss: 0.0023 - val_loss: 1.7885e-04\n",
      "760/760 [==============================] - 23s 31ms/step - loss: 0.0022 - val_loss: 5.5737e-04\n",
      "760/760 [==============================] - 24s 31ms/step - loss: 0.0023 - val_loss: 0.0011\n",
      "760/760 [==============================] - 23s 31ms/step - loss: 0.0024 - val_loss: 2.5086e-04\n",
      "760/760 [==============================] - 24s 32ms/step - loss: 0.0021 - val_loss: 2.2798e-04\n",
      "760/760 [==============================] - 24s 32ms/step - loss: 0.0023 - val_loss: 6.0209e-04\n"
     ]
    }
   ],
   "source": [
    "for i in range(200):\n",
    "    model.fit(x_train,y_train,epochs=1,batch_size=1,shuffle=False,callbacks=[custom_hist],validation_data=(x_val,y_val))\n",
    "    model.reset_states()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 15,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "plt.plot(custom_hist.train_loss)\n",
    "plt.plot(custom_hist.val_loss)\n",
    "plt.ylim(0.0,0.15)\n",
    "plt.ylabel('loss')\n",
    "plt.xlabel('epoch')\n",
    "plt.legend(['train','val'],loc='upper left')\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 19,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 864x360 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "look_ahead=250\n",
    "xhat=x_test[0]\n",
    "predictions=np.zeros((look_ahead,1))\n",
    "for i in range(look_ahead):\n",
    "    prediction=model.predict(np.array([xhat]),batch_size=1)\n",
    "    predictions[i]=prediction\n",
    "    xhat=np.vstack([xhat[1:],prediction])\n",
    "    \n",
    "plt.figure(figsize=(12,5))\n",
    "plt.plot(np.arange(look_ahead),predictions,'r',label='prediction')\n",
    "plt.plot(np.arange(look_ahead),y_test[:look_ahead],label='test_function')\n",
    "plt.legend()\n",
    "plt.show()\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 21,
   "metadata": {},
   "outputs": [],
   "source": [
    "e1=model.evaluate(x_train,y_train,batch_size=1,verbose=0)\n",
    "e2=model.evaluate(x_val,y_val,batch_size=1,verbose=0)\n",
    "e3=model.evaluate(x_test,y_test,batch_size=1,verbose=0)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 22,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "0.0005987717886455357"
      ]
     },
     "execution_count": 22,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "e1"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 23,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "0.0006020947475917637"
      ]
     },
     "execution_count": 23,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "e2"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 24,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "0.0006020947475917637"
      ]
     },
     "execution_count": 24,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "e3"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": []
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3.7",
   "language": "python",
   "name": "python3"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 1
}
